package com.sc.nft.service;

import com.sc.nft.entity.WxMiniUserInfo;
import com.sc.nft.entity.vo.mall.MiniMallOrderConfirmVO;
import com.sc.nft.entity.vo.mall.MiniMallOrderPreviewVO;
import com.sc.nft.entity.vo.mall.req.WxMiniOrderCreateByCartReq;
import com.sc.nft.entity.vo.mall.req.WxMiniOrderCreateReq;
import com.sc.nft.entity.vo.mall.req.WxMiniOrderPreviewByCartReq;
import com.sc.nft.entity.vo.mall.req.WxMiniOrderPreviewReq;
import com.sc.nft.vo.mallcart.MallCartListVO;

import java.util.List;

/**
 * @Author：LiGen
 * @Package：com.sc.nft.service
 * @Project：sc_metago
 * @name：WxMiniMallOrderService
 * @Date：2024/5/15 16:50
 * @Filename：WxMiniMallOrderService
 */
public interface WxMiniMallOrderService {

    /**
     * 小程序订单预览
     *
     * @param wxMiniOrderPreviewReq
     * @param wxMiniUserInfo
     * @return
     */
    MiniMallOrderPreviewVO miniMallOrderPreview(WxMiniOrderPreviewReq wxMiniOrderPreviewReq, WxMiniUserInfo wxMiniUserInfo);


    /**
     * 小程序订单预览(通过购物车)
     *
     * @param wxMiniOrderPreviewByCartReq
     * @param wxMiniUserInfo
     * @return
     */
    MiniMallOrderPreviewVO miniMallOrderPreviewByCart(WxMiniOrderPreviewByCartReq wxMiniOrderPreviewByCartReq, WxMiniUserInfo wxMiniUserInfo);

    /**
     * 小程序订单创建
     *
     * @param wxMiniOrderCreateReq
     * @param wxMiniUserInfo
     * @return
     */
    MiniMallOrderConfirmVO miniMallOrderCreate(WxMiniOrderCreateReq wxMiniOrderCreateReq, WxMiniUserInfo wxMiniUserInfo);


    /**
     * 小程序订单创建(通过购物车)
     *
     * @param wxMiniOrderCreateByCartReq
     * @param wxMiniUserInfo
     * @return
     */
    MiniMallOrderConfirmVO miniMallOrderCreateByCart(WxMiniOrderCreateByCartReq wxMiniOrderCreateByCartReq, WxMiniUserInfo wxMiniUserInfo, List<MallCartListVO> mallCartListVOList);

}
